home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #2
/
Amiga Plus CD - 1995 - No. 2.iso
/
startrek
/
trek73
/
src
/
structs.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-04-11
|
3KB
|
128 lines
/*
* TREK73: structs.h
*
* Struct Defs for TREK73
*
*/
struct phaser {
struct ship *target; /* who we're aimed at */
int bearing; /* direction aimed (if no target) */
char load; /* energy in phasers */
char status; /* Damaged, etc. */
int drain; /* Drain from engines (to if negative) */
} ;
struct tube {
struct ship *target; /* who we're aimed at */
int bearing; /* direction aimed (if no target) */
char load; /* energy in tubes */
char status; /* Damaged, etc */
} ;
struct shield {
float eff; /* efficiency from 0-1 */
float drain; /* Actual drain from engines */
float attemp_drain; /* Attempted drain from engines */
} ;
struct ship {
char name[30]; /* name of ship */
char nat; /* nationality */
int x, y; /* location */
float warp; /* warp speed */
float newwarp; /* for speed changes */
int course; /* 0-360 */
int newcourse; /* for course changes */
struct ship *target; /* who we're pursuing */
int eluding; /* Flag for eluding */
struct phaser phasers[4]; /* phaser banks */
int p_spread; /* phaser spread */
int p_percent; /* phaser firing percentage */
struct tube tubes[6]; /* torpedo tubes */
int t_prox; /* proximity delay */
int t_delay; /* time delay */
int t_lspeed; /* launch speed */
struct shield shields[4]; /* shields */
float eff; /* efficiency */
float regen; /* regeneration (energy per turn) */
int energy; /* amount of effective energy */
int pods; /* max energy level */
int crew; /* crew left alive */
int status; /* computer, probe l, warp, sensors, eng */
int delay; /* how long 'till we blow up? */
int id; /* Unique identifier */
int (*strategy)(); /* Which strategy to use */
} ;
/*
* note that probes act like torpedos
* but have targets; torps only have
* courses
*/
struct torpedo {
struct ship *from; /* pointer to ship they're from */
int x, y; /* coords of object */
int course; /* where it's going */
float speed; /* how fast we're moving */
float newspeed; /* what our target speed is */
struct ship *target; /* who we're aimed at */
int fuel; /* how many antimatter pods it has */
int timedelay; /* time clicks left before detonation */
int prox; /* proximity fuse */
int id; /* Unique identifier */
} ;
/*
* the list of what's in space -- depending on the type, we use
* differing parts of the union (data) structure. it's a linked
* list of all the stuff in space.
*/
struct list {
int type;
struct list *back, *fwd;
union {
struct torpedo *tp;
struct ship *sp;
} data;
} ;
struct cmd {
int (*routine)();
char *word1;
char *word2;
int turns;
} ;
/*
* for the phaser and anti-matter damage lists
*/
struct dam {
int roll;
char *mesg;
};
struct damage {
float eff;
float fuel;
float regen;
float shield;
float crew;
float weapon;
struct dam stats[4];
};
struct score {
int score;
int ships;
char captain[30];
char username[10];
};
struct rates {
char *rate;
int points;
};